#!/usr/bin/env python3

import paho.mqtt.client as mqtt
import sys

def do_check(sub, topic, bad_res):
    if mqtt.topic_matches_sub(sub, topic) == bad_res:
        print("ERROR: "+sub+" "+topic)
        sys.exit(1)

do_check("test/6/#", "test/3", True)

do_check("foo/bar", "foo/bar", False)
do_check("foo/+", "foo/bar", False)
do_check("foo/+/baz", "foo/bar/baz", False)
do_check("foo/+/#", "foo/bar/baz", False)
do_check("A/B/+/#", "A/B/B/C", False)
do_check("#", "foo/bar/baz", False)

do_check("foo/bar", "foo", True)
do_check("foo/+", "foo/bar/baz", True)
do_check("foo/+/baz", "foo/bar/bar", True)
do_check("foo/+/#", "fo2/bar/baz", True)

do_check("#", "/foo/bar", False)
do_check("/#", "/foo/bar", False)
do_check("/#", "foo/bar", True)

do_check("$SYS/bar", "$SYS/bar", False)
do_check("#", "$SYS/bar", True)
do_check("$BOB/bar", "$SYS/bar", True)

sys.exit(0)
